import { ConfigDto, ConfigZod } from './types';
import { setHardlink, setSymlink } from './utils';
import * as fse from 'fs-extra';

export * from './utils';

/**
 * 导出配置类型
 */
export { ConfigDto };

/**
 * 快捷设置
 */
export function setConfig(config: ConfigDto) {
  const res = ConfigZod.safeParse(config);
  if (!res.success) {
    console.log('配置错误!', res.error);
  }
  
  /** 设置软链接 */
  if (config.symlink) config.symlink.forEach(link => {
    if (fse.existsSync(link.from)) {
      setSymlink(link.from, link.to);
    } else {
      console.log(`>>> 目录不存在：${link.from}`);
    }
  })
  /** 设置硬链接 */
  if (config.hardlink) config.hardlink.forEach(link => {
    if (fse.existsSync(link.from)) {
      setHardlink(link.from, link.to);
    } else {
      console.log(`>>> 目录不存在：${link.from}`);
    }
  })
}
